# 作者:侯征
import copy
#定义列表
names=["姚振","何毅","崔杰","龟田彪","熊正航"]
#定义二维列表
names1=["姚振",["何毅","何振华"],"崔杰","龟田彪","熊正航"]
#拷贝列表: 浅拷贝只会拷贝第一层值,第二层不会拷贝值,只拷贝地址,所以第二层值会跟着改变
           #copy模块的深拷贝会拷贝第二层地址和值,不会再跟着改变
names2=names.copy() #浅拷贝
name3=copy.deepcopy(names) #深拷贝,因为会开辟内存,所以一般不轻易使用
print(names)
print(names2)
#修改列表值
names[0]="傻逼"
print(names)#值变了
print(names2)#值不变
#修改二维列表中的值
names1[1][1]="何二狗"
print(names1)
#取出列表中元素
print(names[0])
print(names[-1])   #倒着访问,-1表示倒数第一个
print(names[-1:-3])  #从左往右取,这样写不对,应该是下面这种写法
print(names[-3:-1])  #娶不到最后一个,想要取到最后一个,后面直接省略不写
print(names[0],names[1])
#切片:取多个元素
#打印names中第一个到最后一个,隔一个打印
print(names[0:-1:2])#如果是0和-1可以省略: names[::2]
print(names[1:3])#取到了第二个和第三个,结束位置不包括,取值是连续的

#插入
names.append("侯征")
#插入指定位置
names.insert(1,"碎侯")  #想插入的指定位置  值
#修改
names[2]="雷佳"
#删除
names.remove("侯征")
del names[1]
del names #删除列表变量
names.pop() #删除并返回,默认是最后一个,可输入下标
#查找
names.index("姚振")  #查找姚振在列表中的位置
names.count("张三") #获取相同值在列表中的数量
names.clear()  #清除列表
names.reverse()  #反转列表中的元素
names.extend(names)  #将另一个列表合并到这个列表中,原来列表仍存在
names.sort()  #元素按字母顺序排序   排序规则:特殊符号  数字  大写 小写
